/**
 * State 接口
 *
 * @export
 * @interface State
 */

export interface Menu {
  id: number; // ID
  name: string; // 名称
  path: string; // path
  childern: Menu[]; // 子菜单
  parent: Menu; // 父亲
  icon: string; // 图标
  status: string; // 状态
}

/**
 * 系统管理菜单接口
 */
export interface SystemConf {
  name: string; // 系统配置菜单名称
  key: string; // 系统配置菜单 key
}

interface Role {
  id: number; // 角色ID
  role_name: string; // 角色名称
  role_description: string; // 角色描述
}

export interface State {
  id: string | number; // 编号
  token: string; // token
  account: string; // 账号
  name: string; // 姓名
  logined: boolean; // 是否登录
  loginFailure: boolean; // 登录失效
  lastLoginTime: string; // 最后登录时间
  roles: Role[]; // 角色信息
  menus: Menu[]; // 菜单信息
  reset_pass: boolean;
  mobile: number | string; // 手机
  systemConf: SystemConf[];
  depotManagerFlg: boolean;
}

export interface LoginInfo {
  username: string;
  password: string;
  [prop: string]: any;
}

/**
 * 登录状态
 */
export interface LoginStatus {
  logined: boolean; // 是否登录
  loginFailure: boolean; // 登录失效
  token: string; // token
}

export interface PutAuthUserModpwd {
  pwd: string; // 密码
}

/**
 * 角色选择器
 */
export interface GetDatapowerRoles {
  type: "ss" | "sr"; // 角色类型
}

export interface LoginByTokenParams {
  token: string;
}

export interface LoginUserInfo {
  id: number;
  account: string;
  name: string;
  last_login_time: string;
  user_role_list: Array<{
    id: number;
    role_name: string;
    role_description: string;
  }>;
  depot_manager_flg: boolean;
}
